# def func1(a, b):
#     return a - b
#
#
# def func2(a, b):
#     return a + b
#
#
# def func3(a, b):
#     return a * b * 100
#
#
# def func4(a, b):
#     return a * b
#
#
# # （1）把lambda表达式当作参数传递给函数；
# def get_sum(func):
#     print("*" * 50)
#     a = 100
#     b = 200
#     print(func(a, b))
#
#
# # get_sum(func1)
#
# # （2）求解两个数之和，注意：在函数中定义变量并传递。
# get_sum(lambda a, b: a * b - 10000 + 20)
#
# # 当一个函数比较简单且仅使用一次时，建议使用lambda


stu_list = [{"name": "tom", "age": 14}, {"name": "jerry", "age": 21}, {"name": "rose", "age": 33}]
print(stu_list)


def func1(item):
    return item["age"] % 10


# 根据每个学生的年龄的个位数进行排序
stu_list.sort(key=lambda item: item['age'] % 10, reverse=True)
print(stu_list)


# 函数自己调用自己，这种编程方式就叫递归
def func2(n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    if n > 2:
        return func2(n - 1) + func2(n - 2)


print(func2(64))
